package com.example.myweb.Repository.JpaRepository;

import com.example.myweb.Domain.Entity.PollVote;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Map;

public interface PollVoteRepository extends JpaRepository<PollVote, Long> {

    /**
     * 统计一个投票中每个选项的票数。
     * 使用JPQL的GROUP BY和COUNT来高效统计。
     * @param attachmentId 投票附件的ID
     * @return 一个Map，Key是选项索引(optionIndex)，Value是该选项的票数。
     */
    @Query("SELECT pv.optionIndex, COUNT(pv) FROM PollVote pv WHERE pv.attachment.attachmentId = :attachmentId GROUP BY pv.optionIndex")
    List<Object[]> countVotesByOptionIndex(@Param("attachmentId") Long attachmentId);
}